package org.example.model.enums;

import lombok.Getter;

/**
 * 保存模式枚举
 */
@Getter
public enum SaveModelEnum {
    /**
     * 完全更新模式
     * 删除旧数据后保存新数据
     */
    FULL_UPDATE(1, "完全更新"),

    /**
     * 更新信息模式
     * 只修改原有数据，不删除数据
     */
    UPDATE_INFO(2, "更新信息");

    /**
     * 模式编码
     */
    private final Integer code;

    /**
     * 模式描述
     */
    private final String desc;

    SaveModelEnum(Integer code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    /**
     * 根据code获取枚举值
     *
     * @param code 模式编码
     * @return 对应的枚举值，如果没找到返回null
     */
    public static SaveModelEnum getByCode(Integer code) {
        if (code == null) {
            return null;
        }
        for (SaveModelEnum value : SaveModelEnum.values()) {
            if (value.getCode().equals(code)) {
                return value;
            }
        }
        return null;
    }
}
